#include "BulletDynamics/Vehicle/btWheelInfo.h"
#ifdef __cplusplus
extern "C" {
#endif
btWheelInfoConstructionInfo* bullet_NewbtWheelInfoConstructionInfo(){
	btWheelInfoConstructionInfo* wrap_out = new btWheelInfoConstructionInfo();
	return wrap_out;
}

bool bullet_btWheelInfoConstructionInfo_GetFieldOfM_bIsFrontWheel(btWheelInfoConstructionInfo* c_this){
	return (bool)(c_this->m_bIsFrontWheel);
}

btVector3* bullet_btWheelInfoConstructionInfo_GetFieldOfM_chassisConnectionCS(btWheelInfoConstructionInfo* c_this){
	return (btVector3*)(&c_this->m_chassisConnectionCS);
}

double bullet_btWheelInfoConstructionInfo_GetFieldOfM_frictionSlip(btWheelInfoConstructionInfo* c_this){
	return (double)(c_this->m_frictionSlip);
}

double bullet_btWheelInfoConstructionInfo_GetFieldOfM_maxSuspensionForce(btWheelInfoConstructionInfo* c_this){
	return (double)(c_this->m_maxSuspensionForce);
}

double bullet_btWheelInfoConstructionInfo_GetFieldOfM_maxSuspensionTravelCm(btWheelInfoConstructionInfo* c_this){
	return (double)(c_this->m_maxSuspensionTravelCm);
}

double bullet_btWheelInfoConstructionInfo_GetFieldOfM_suspensionRestLength(btWheelInfoConstructionInfo* c_this){
	return (double)(c_this->m_suspensionRestLength);
}

double bullet_btWheelInfoConstructionInfo_GetFieldOfM_suspensionStiffness(btWheelInfoConstructionInfo* c_this){
	return (double)(c_this->m_suspensionStiffness);
}

btVector3* bullet_btWheelInfoConstructionInfo_GetFieldOfM_wheelAxleCS(btWheelInfoConstructionInfo* c_this){
	return (btVector3*)(&c_this->m_wheelAxleCS);
}

btVector3* bullet_btWheelInfoConstructionInfo_GetFieldOfM_wheelDirectionCS(btWheelInfoConstructionInfo* c_this){
	return (btVector3*)(&c_this->m_wheelDirectionCS);
}

double bullet_btWheelInfoConstructionInfo_GetFieldOfM_wheelRadius(btWheelInfoConstructionInfo* c_this){
	return (double)(c_this->m_wheelRadius);
}

double bullet_btWheelInfoConstructionInfo_GetFieldOfM_wheelsDampingCompression(btWheelInfoConstructionInfo* c_this){
	return (double)(c_this->m_wheelsDampingCompression);
}

double bullet_btWheelInfoConstructionInfo_GetFieldOfM_wheelsDampingRelaxation(btWheelInfoConstructionInfo* c_this){
	return (double)(c_this->m_wheelsDampingRelaxation);
}

btWheelInfo::RaycastInfo* bullet_NewbtWheelInfoRaycastInfo(){
	btWheelInfo::RaycastInfo* wrap_out = new btWheelInfo::RaycastInfo();
	return wrap_out;
}

btVector3* bullet_btWheelInfoRaycastInfo_GetFieldOfM_contactNormalWS(btWheelInfo::RaycastInfo* c_this){
	return (btVector3*)(&c_this->m_contactNormalWS);
}

btVector3* bullet_btWheelInfoRaycastInfo_GetFieldOfM_contactPointWS(btWheelInfo::RaycastInfo* c_this){
	return (btVector3*)(&c_this->m_contactPointWS);
}

void** bullet_btWheelInfoRaycastInfo_GetFieldOfM_groundObject(btWheelInfo::RaycastInfo* c_this){
	return (void**)(&c_this->m_groundObject);
}

btVector3* bullet_btWheelInfoRaycastInfo_GetFieldOfM_hardPointWS(btWheelInfo::RaycastInfo* c_this){
	return (btVector3*)(&c_this->m_hardPointWS);
}

bool bullet_btWheelInfoRaycastInfo_GetFieldOfM_isInContact(btWheelInfo::RaycastInfo* c_this){
	return (bool)(c_this->m_isInContact);
}

double bullet_btWheelInfoRaycastInfo_GetFieldOfM_suspensionLength(btWheelInfo::RaycastInfo* c_this){
	return (double)(c_this->m_suspensionLength);
}

btVector3* bullet_btWheelInfoRaycastInfo_GetFieldOfM_wheelAxleWS(btWheelInfo::RaycastInfo* c_this){
	return (btVector3*)(&c_this->m_wheelAxleWS);
}

btVector3* bullet_btWheelInfoRaycastInfo_GetFieldOfM_wheelDirectionWS(btWheelInfo::RaycastInfo* c_this){
	return (btVector3*)(&c_this->m_wheelDirectionWS);
}

btWheelInfo* bullet_NewbtWheelInfo(){
	btWheelInfo* wrap_out = new btWheelInfo();
	return wrap_out;
}

btWheelInfo* bullet_NewbtWheelInfo1(btWheelInfoConstructionInfo* ci){
	btWheelInfoConstructionInfo& c_arg_ci=(btWheelInfoConstructionInfo&)(*ci);
	btWheelInfo* wrap_out = new btWheelInfo(c_arg_ci);
	return wrap_out;
}

bool bullet_btWheelInfo_GetFieldOfM_bIsFrontWheel(btWheelInfo* c_this){
	return (bool)(c_this->m_bIsFrontWheel);
}

double bullet_btWheelInfo_GetFieldOfM_brake(btWheelInfo* c_this){
	return (double)(c_this->m_brake);
}

btVector3* bullet_btWheelInfo_GetFieldOfM_chassisConnectionPointCS(btWheelInfo* c_this){
	return (btVector3*)(&c_this->m_chassisConnectionPointCS);
}

void** bullet_btWheelInfo_GetFieldOfM_clientInfo(btWheelInfo* c_this){
	return (void**)(&c_this->m_clientInfo);
}

double bullet_btWheelInfo_GetFieldOfM_clippedInvContactDotSuspension(btWheelInfo* c_this){
	return (double)(c_this->m_clippedInvContactDotSuspension);
}

double bullet_btWheelInfo_GetFieldOfM_deltaRotation(btWheelInfo* c_this){
	return (double)(c_this->m_deltaRotation);
}

double bullet_btWheelInfo_GetFieldOfM_engineForce(btWheelInfo* c_this){
	return (double)(c_this->m_engineForce);
}

double bullet_btWheelInfo_GetFieldOfM_frictionSlip(btWheelInfo* c_this){
	return (double)(c_this->m_frictionSlip);
}

double bullet_btWheelInfo_GetFieldOfM_maxSuspensionForce(btWheelInfo* c_this){
	return (double)(c_this->m_maxSuspensionForce);
}

double bullet_btWheelInfo_GetFieldOfM_maxSuspensionTravelCm(btWheelInfo* c_this){
	return (double)(c_this->m_maxSuspensionTravelCm);
}

double bullet_btWheelInfo_GetFieldOfM_rollInfluence(btWheelInfo* c_this){
	return (double)(c_this->m_rollInfluence);
}

double bullet_btWheelInfo_GetFieldOfM_rotation(btWheelInfo* c_this){
	return (double)(c_this->m_rotation);
}

double bullet_btWheelInfo_GetFieldOfM_skidInfo(btWheelInfo* c_this){
	return (double)(c_this->m_skidInfo);
}

double bullet_btWheelInfo_GetFieldOfM_steering(btWheelInfo* c_this){
	return (double)(c_this->m_steering);
}

double bullet_btWheelInfo_GetFieldOfM_suspensionRelativeVelocity(btWheelInfo* c_this){
	return (double)(c_this->m_suspensionRelativeVelocity);
}

double bullet_btWheelInfo_GetFieldOfM_suspensionRestLength1(btWheelInfo* c_this){
	return (double)(c_this->m_suspensionRestLength1);
}

double bullet_btWheelInfo_GetFieldOfM_suspensionStiffness(btWheelInfo* c_this){
	return (double)(c_this->m_suspensionStiffness);
}

btVector3* bullet_btWheelInfo_GetFieldOfM_wheelAxleCS(btWheelInfo* c_this){
	return (btVector3*)(&c_this->m_wheelAxleCS);
}

btVector3* bullet_btWheelInfo_GetFieldOfM_wheelDirectionCS(btWheelInfo* c_this){
	return (btVector3*)(&c_this->m_wheelDirectionCS);
}

double bullet_btWheelInfo_GetFieldOfM_wheelsDampingCompression(btWheelInfo* c_this){
	return (double)(c_this->m_wheelsDampingCompression);
}

double bullet_btWheelInfo_GetFieldOfM_wheelsDampingRelaxation(btWheelInfo* c_this){
	return (double)(c_this->m_wheelsDampingRelaxation);
}

double bullet_btWheelInfo_GetFieldOfM_wheelsRadius(btWheelInfo* c_this){
	return (double)(c_this->m_wheelsRadius);
}

double bullet_btWheelInfo_GetFieldOfM_wheelsSuspensionForce(btWheelInfo* c_this){
	return (double)(c_this->m_wheelsSuspensionForce);
}

btTransform* bullet_btWheelInfo_GetFieldOfM_worldTransform(btWheelInfo* c_this){
	return (btTransform*)(&c_this->m_worldTransform);
}

double bullet_btWheelInfo_getSuspensionRestLength(btWheelInfo* c_this){
	btScalar c_out = c_this->getSuspensionRestLength();
	double wrap_out = (c_out);
	return wrap_out;
}

void bullet_btWheelInfo_updateWheel(btWheelInfo* c_this,btRigidBody* chassis,btWheelInfo::RaycastInfo* raycastInfo){
	btRigidBody const& c_arg_chassis=(btRigidBody const&)(*chassis);
	btWheelInfo::RaycastInfo& c_arg_raycastInfo=(btWheelInfo::RaycastInfo&)(*raycastInfo);
	c_this->updateWheel(c_arg_chassis,c_arg_raycastInfo);
}

#ifdef __cplusplus
}
#endif
